<?php

require_once APPPATH . 'models/usuario_model.php';

class Cliente_model extends Usuario_model
{

    public function  __construct($id = null)
    {
	parent::__construct($id);
    }

    public function create()
    {
	$this->db->trans_start();

	parent::create();

	$dados = array('id_cliente_usuario' => $this->get_id());

	$this->db->insert('cliente', $dados);

	$this->db->trans_complete();

	if ($this->db->trans_status() === FALSE)
	{
	    return FALSE;
	}

	return TRUE;
    }

    public function delete()
    {
	parent::delete();
    }

    public function fechar_compra(stdClass $pagamento)
    {
	require_once APPPATH . 'models/lote_model.php';
	require_once APPPATH . 'models/ordem_model.php';

	// cria a ordem
	$ordem = new Ordem_model();
	$ordem->set_id_cliente($this->get_id());
	$ordem->set_total($this->cart->total());
	$ordem->set_bandeira($pagamento->bandeira);
	$ordem->set_nro_cartao($pagamento->nro_cartao);
	$ordem->set_cod_seguranca($pagamento->cod_seguranca);
	$ordem->set_nro_parcelas($pagamento->nro_parcelas);

	// comeca a transação
	$this->db->trans_start();

	$ordem->create();

	// faz um loop pra reservar os ingressos desta ordem
	$arr_carrinho = $this->cart->contents();
	foreach($arr_carrinho as $k => $row_id)
	{
	    $lote = new Lote_model($row_id['id']);
	    $lote->vende_ingressos($row_id['qty'], $ordem);
	}

	$this->db->trans_complete();

	if ($this->db->trans_status() === FALSE)
	{
	    // erro no banco de dados
	    return FALSE;
	}
	else
	{
//	    $this->envia_confirmacao($ordem);
	    return TRUE;
	}
    }

    private function envia_confirmacao(Ordem_model $ordem)
    {
	$ingressos = $ordem->get_ingressos();

	$msg   = 'Caro cliente,'.
	'<br>' . 'Gostariamos de avisa-lo de que recebemos o seu pedido.'.
	'<br>' . 'Detalhes do seu pedido:'.
	'<br>' . '<br>'.
	'<br>' . '| INGRESSO | QTDE | Valor |';

	foreach($ingressos as $ing)
	{
	    $msg .= '<br>' . "|{$ing->get_nome()}| ";
	}

	$this->load->library('email');

	$this->email->from('vendas@fasttickets.com', 'Fast Tickets');
	$this->email->to('carlos.ca.toledo@gmail.com');

	$this->email->subject('Recebemos seu pedido!');
	$this->email->message('Testing the email class.');

	$this->email->send();
    }
}